Effect<A, E, R>
from Effect-TS
docs
code:-
┌─── Represents the success type
│ ┌─── Represents the error type
│ │ ┌─── Represents required dependencies
▼ ▼ ▼
Effect<Success, Error, Requirements>
Effectは遅延実行される
Effectはimmutableである
Effect library内の全ての関数は新しいEffect値を生成する
Success
成功した場合の型
neverの場合は、失敗するまで無限に実行され続けることを意味する
Error
失敗した場合の型
neverの場合は、失敗することはありえないことを意味する
Requirements
いわゆるeffect typeだろう
Effect.Successなどのutility typeで抜き出せる
code:ts
declare const program: Effect.Effect<number, Error, SomeContext>
type A = Effect.Effect.Success<typeof program> // number
type E = Effect.Effect.Error<typeof program> // Error
type R = Effect.Effect.Context<typeof program> // SomeContext